package lx;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class demo2 {
    public static void main(String[] args) throws IOException {
        //https://www.zztongyun.com/article-%E5%AE%9E%E5%90%8D%E9%AA%8C%E8%AF%81%E8%BA%AB%E4%BB%BD%E8%AF%81%E5%8F%B7%E5%A7%93%E5%90%8D%E5%A4%A7%E5%85%A8-1.html
        //利用这个位置爬取身份证信息


        //创建一个URL对象

        URL url = new URL("https://www.zztongyun.com/article-%E5%AE%9E%E5%90%8D%E9%AA%8C%E8%AF%81%E8%BA%AB%E4%BB%BD%E8%AF%81%E5%8F%B7%E5%A7%93%E5%90%8D%E5%A4%A7%E5%85%A8-1.html");
        //连接这个网站
        URLConnection coon = url.openConnection();
        //创建一个对象去读取网络中的数据
        // coon.getInputStream() 因为位置中有中文所以要使用转换流转换字符流并且每次读取一行字符，所以要使用缓冲流
//通过coon.getInputStream()获取输入流后，再将其包装为字符流BufferedReader，是为了更方便地处理文本数据，利用字符流的特性进行按行读取、处理编码等操作。
        BufferedReader br = new BufferedReader(new InputStreamReader(coon.getInputStream()));
        String line = null;
        //创建正则表达式对象pattern 340101199901071000
        Pattern pattern = Pattern.compile("[1-9]\\d{16}[Xx\\d]");
        while ((line = br.readLine()) != null) {
            //拿着文本匹配器对象matcher去按照pattern规则去读取当前一行的信息
            Matcher matcher = pattern.matcher(line);
            //matcher在line中找符合规则的pattern的小串

            while (matcher.find()) {

                System.out.println(matcher.group());
            }

        }

        br.close();


    }
}
